Skip to content

Add least privilege plan skill#118

Open
LubuSeb wants to merge 67 commits into
runxhq:mainfrom
LubuSeb:lubu/least-privilege-plan-37
Open

Add least privilege plan skill#118
LubuSeb wants to merge 67 commits into
runxhq:mainfrom
LubuSeb:lubu/least-privilege-plan-37

Conversation

@LubuSeb

@LubuSeb LubuSeb commented Jun 22, 2026

Copy link
Copy Markdown

Adds a least-privilege-plan skill package for producing read-only grant reduction plans from bounded run history and a declared policy.

Package contents:

  • skills/least-privilege-plan/SKILL.md
  • skills/least-privilege-plan/X.yaml
  • deterministic runner and fixtures
  • local, clean-install, hosted harness, dogfood, registry, and receipt verification evidence

Validation performed:

  • runx-cli 0.6.13
  • hosted registry package: lubuseb/least-privilege-plan@sha-2ed0e113ff52
  • local harness: 5 cases passed (over-broad-grant-plan, justified-grant-plan, missing-grants-fails-closed, invalid-effect-status-fails-closed, policy-mismatch-fails-closed)
  • local receipt verification: valid
  • registry read: success
  • clean install: success
  • installed package harness: passed
  • hosted dogfood run: sealed receipt runx:receipt:sha256:434a5446b2f7d85b35a2ff9ec70ba48d25c8bf06b8cb64f0f79ff4a576f33d77
  • hosted receipt verification: valid

The runner is read-only by implementation: it reads the input packet, computes keep/reduce/revoke/needs_human_review recommendations, rejects malformed evidence instead of treating it as success, and writes only structured stdout.

auscaster and others added 30 commits June 19, 2026 19:55
default to the /internal/thread-outbox pending cursor (drops the fragile client cursor-cache that re-walked history on a fresh runner) and listen for a board-sync repository_dispatch so the venue can trigger the drain low-latency.
a no-ua, no-browser-headers, http1.1 client is an obvious bot signature. the fetch tool now presents a current chrome ua + the browser header set and negotiates http2 with gzip/brotli, applied as overridable defaults. configurable via RUNX_HTTP_USER_AGENT and RUNX_HTTP_BROWSER=0; the anthropic and registry transports stay plain; all transport guards unchanged. tls (ja3/ja4) and http2 fingerprint matching are out of scope.
Conventional follow-up for the pushed lockfile refresh.
Adds the dependency-cve-audit runx skill and registers it in the official catalog.

Verified:
- CI green on PR runxhq#82
- node --check skills/dependency-cve-audit/run.mjs
- runx doctor skills/dependency-cve-audit --json
- runx harness skills/dependency-cve-audit --receipt-dir <tmp> --json
- packages/cli/src/skill-refs.test.ts
Adds the structured-extraction runx skill and completes the paid follow-up integration work.

Maintainer cleanup added:
- deterministic tool fixture for structured.extract
- SKILL.md frontmatter for official catalog generation
- official skill lock/Rust table/catalog allowlist entries

Verified:
- CI green on PR runxhq#80
- local merge simulation after runxhq#82
- node --check skills/structured-extraction/tools/structured/extract/run.mjs
- runx doctor skills/structured-extraction --json
- runx harness skills/structured-extraction --receipt-dir <tmp> --json
- runx dev tools/structured/extract --json with RUNX_PROJECT_DIR set to the skill root
- packages/cli/src/skill-refs.test.ts
auscaster and others added 29 commits June 21, 2026 02:04
Remove the user-facing installation-id flag from add/registry flows, keep native command help aligned, and update registry fixtures/docs to use versioned runx add plus runx skill execution commands.
Rename the bundled runx operator skill to ops-desk, remove product-specific fixture names, keep newer maturing skills internal until they meet the public catalog bar, and make graph skills fail closed when required graph inputs are missing.
Update the native CLI skill execution/export surfaces, add governed data-plane contracts and fixtures, refresh official skill catalog coverage, and remove local .ai state from Git tracking.

Validation: pnpm bindings:check; pnpm exec tsc --noEmit --allowJs --checkJs --module NodeNext --moduleResolution NodeNext --target ES2022 --skipLibCheck scripts/check-upstream-skill-bindings.mjs; git diff --check
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants